package com.dkm.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.repository.query.Param;

import com.dkm.entity.Counselor;
import com.dkm.entity.Student;
import com.dkm.util.ResultUtil;

public interface CounselorService {

	/**
	 * 多条件分页查询咨询师并按权重排序
	 * @param counselor
	 * @param pageable
	 * @return
	 */
	Page<Counselor> findAllCounselors(Counselor counselor,Pageable pageable);
	/**
	 * 根据用户id获取网络咨询师
	 * @param user_id
	 * @return
	 */
	Counselor getNetCounselorByUser_id(String user_id);
	
	/**
	 * 根据用户id获取咨询师
	 * @param user_id
	 * @return
	 */
	Counselor getCounselorByUser_id(String user_id);
	
	/**
	 * 修改咨询师权重
	 * @param counselor
	 * @return
	 */
	ResultUtil updateCounselorWeight(Counselor counselor);
	/**
	 * 手动分配咨询师
	 * @param sids 多个学生id的字符串
	 * @return
	 */
	ResultUtil manualAllocation(String sids);
	
	/**
	 * 开启/关闭自动分配
	 * @param user_id
	 * @return
	 */
	ResultUtil autoAllocation(String user_id);
	
	/**
	 * 随机分配咨询师
	 * @param students 要分配的学生
	 * @param counselors 已经签到的咨询师
	 */
	List<Student> randomAllocation(List<Student> students,List<Counselor> counselors);
	/**
	 * 获取已签到的咨询师
	 * @return
	 */
	List<Counselor> getSignCounselor();
	
	/**
	 * 获取自动分配状态
	 * @param user_id
	 * @return
	 */
	ResultUtil getAutoAllocationStatus(String user_id);
}
